--BLOCK-00048---------
: SHAPE1 DATA 4 $C0C0 0 0 0 33 DCHAR ; SHAPE1
: SHAPE2 DATA 4 $3F3F 0 0 0 34 DCHAR ; SHAPE2
: SHAPE3 DATA 4 $FFFF 0 0 0 35 DCHAR ; SHAPE3
: SHAPE4 DATA 4 0 $C0C0 $C0C0 $C0C0 36 DCHAR ; SHAPE4
: SHAPE5 DATA 4 $C0C0 $C0C0 $C0C0 $C0C0 37 DCHAR ; SHAPE5
: SHAPE6 DATA 4 $3F3F $C0C0 $C0C0 $C0C0 38 DCHAR ; SHAPE6
: SHAPE7 DATA 4 $FFFF $C0C0 $C0C0 $C0C0 39 DCHAR ; SHAPE7
: SHAPE8 DATA 8 $0000 $0000 $0000 $3F7F $0103 $0303 $0303 $FFFF
; CREATE COLORS 2 C,  3 C,  4 C,  5 C, 6 C,  8 C,  8 C, 9 C, 10
C, 11 C, 12 C, 2 C, 14 C, 15 C,
: INIT   1 GMODE  13 SCREEN  4 1 0 COLOR
  7 0 DO  \ define bricks and set colours from colour table...
    SHAPE8 I 8 * 40 + DCHAR
   I 5 + COLORS I CELLS + DUP C@ SWAP 1+ C@ COLOR LOOP ;
-->
 
 
--BLOCK-00049---------
: 3DROP COMPILE DROP COMPILE 2DROP ; IMMEDIATE
0 VALUE R  0 VALUE C  0 VALUE BRICK
: MAIN-LOOP  INIT   BEGIN
    BEGIN 23 RND TO R  30 RND TO C  R C GCHAR
      40 <  R C 1+ GCHAR  40 <  AND  UNTIL
    7 RND 8 * 40 + TO BRICK
    R C BRICK 1 HCHAR   R C 1+ BRICK 1+ 1 HCHAR
    \ do shadow tests...
   R C 2+ 2DUP GCHAR DUP 39 < IF 4 OR 1 HCHAR ELSE 3DROP THEN
   R 1+ C 2DUP GCHAR DUP 39 < IF 2 OR 1 HCHAR ELSE 3DROP THEN
   R 1+ C 1+ 2DUP GCHAR DUP 39 < IF 3 OR 1 HCHAR ELSE 3DROP THEN
   R 1+ C 2+ 2DUP GCHAR DUP 39 < IF 1 OR 1 HCHAR ELSE 3DROP THEN
  AGAIN ;  MAIN-LOOP
